Conversation
Sync: dev to main
Stop decodeURIComponent from crashing Settings on a truncated filename, wait for the matching ZIP entry instead of the previous one, and keep volunteer accounts from counting as staff. Analytics now uses unexpired memberships and chronological bootcamp terms.
…sues-9d3d Fix resume book, analytics, and volunteer-admin bugs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )
Note
High Risk
Touches production deploy config, payments reconciliation, event check-in concurrency, admin authorization, and a new GCS-backed PII surface; incorrect cache or reconcile logic could affect live members.
Overview
This PR ships member resume storage in Cloud Storage (metadata in Postgres, upload/serve/ZIP via Next route handlers, staff
/admin/resumes,RESUME_BUCKETin App Hosting) and documents the club production site (docs/club-project.md, resume-book docs, glossary/README updates). Club project applications now require a pitch and can attach an optional PDF resume; leaders fetch resumes via a dedicated procedure.Tail latency and load get a large pass:
CacheServicegainsgetOrSetwith in-flight deduplication and correct caching ofnullanswers; hot routers (events, hackathons, member, admin analytics, portal context) adopt it. Event check-in only takesFOR UPDATEwhen a capacity cap exists; StripereconcileMyPaymentsbatches DB reads; mass email paths use bounded SMTP concurrency (forEachWithConcurrency). Metrics add p99 histogram buckets, Prometheus recording rules/alerts, Grafana p99 panels, andMETRICS_TOKENfor/api/metrics.Security and repo hygiene: expanded
.gitignore, new.githooks(block secrets/agent dirs; block Claude attribution in commits), and contributing guidance. CI stops pinning pnpm so it followspackageManager/pnpm-workspace.yaml.audittRPC router is removed (tests dropped);admin.isAdminexcludes volunteers; newadmin.growthinsights query.pnpm 12 is reflected in getting-started; TODO.md tracks deploy and follow-ups.
Reviewed by Cursor Bugbot for commit 126b7b7. Bugbot is set up for automated code reviews on this repo. Configure here.